1. 表达式 Expressions
本节的内容涉及到了一些核心的概念与思考问题的模型,请务必反复温习确保能够完全理解这些概念与模型背后的思想并能融会贯通在实际的开发过程中。
表达式描述一个计算,结果是一个值。
表达式可分为两类:一类例如数字、字符串等 自求值 的表达式被称作原子表达式,其余的均属于 函数调用表达式,可用
函数调用表达式形如
编程语言按照如下过程递归地计算任意表达式的值:
- 按顺序求值运算符与操作数。
- 以运算符的值为函数,操作数子表达式的值为参数,应用该函数并计算该表达式的值。
注意:在函数被调用前,所有操作数表达式都会被先求出对应的值作为参数传入函数体。这一过程无法后于函数体执行。
事实上,不管是 Python 还是其它编程语言,我们所输入的表达式本质上只是一些字符。Python 解释器能够处理这些字符并输出我们想要的结果,实际上发生了这些事情:
read函数读取我们输入的字符串,按照一定的规则 解析 该字符串并返回存储在某种数据结构中的 抽象语法树(Abstract Syntax Tree,AST)。- Python 解释器执行
eval操作。该操作接受一个抽象语法树作为输入,按照一定的规则对该抽象语法树求值(evaluating it)。并将求得的值返回。
复杂表达式的求值过程
以 mul(add(2, mul(4, 6)), add(3,5)) 为例,Python 解释器的处理过程如下:
/Pasted%20image%2020250225140254.png)